package com.xoa.service.flowplugin.impl;

import com.xoa.dao.flowplugin.FlowPluginMapper;
import com.xoa.model.flowplugin.FlowPluginModel;
import com.xoa.service.flowplugin.FlowPluginService;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 创建作者:   张勇
 * 创建日期:   2017/6/21 13:33
 * 类介绍  :
 * 构造参数:
 */
@Service
public class FlowPluginServiceImpl implements FlowPluginService {

    @Resource
    private FlowPluginMapper flowPluginMapper;

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/6/21 13:35
     * 方法介绍:   新建流程插件
     * 参数说明:
     *
     * @return
     */
    @Override
    @Transactional
    public ToJson<FlowPluginModel> save(FlowPluginModel flowPluginModel) {
        ToJson<FlowPluginModel> toJson = new ToJson<FlowPluginModel>(1, "error");
        try {
            flowPluginMapper.save(flowPluginModel);
            toJson.setFlag(0);
            toJson.setMsg("ok");
            toJson.setObject(flowPluginModel);
        } catch (Exception e) {
            L.e("FlowPluginServiceImpl save:" + e);
        }
        return toJson;
    }

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/6/21 14:23
     * 方法介绍:   根据触发器插件ID查询信息
     * 参数说明:
     *
     * @return
     */
    @Override
    public ToJson selectList(Integer flowPluginId) {
        ToJson toJson = new ToJson(1, "error");
        FlowPluginModel flowPluginModel = flowPluginMapper.selectList(flowPluginId);
        if (flowPluginModel != null) {
            toJson.setFlag(0);
            toJson.setMsg("ok");
            toJson.setObject(flowPluginModel);
        }
        return toJson;
    }

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/7/11 11:16
     * 方法介绍:   查询触发器所有插件
     * 参数说明:
     * @return
     */
    @Override
    @Transactional(readOnly = true)
    public ToJson showPlugin(){
        ToJson toJson = new ToJson(1,"error");
        try {
            toJson.setObj(flowPluginMapper.showFlowPlugin());
            toJson.setFlag(0);
            toJson.setMsg("ok");
        }catch (Exception e){
            L.e("FlowPluginServiceImpl showPlugin:"+e);
        }
        return toJson;
    }

}
